This invention relates generally to determination of network characteristics, and more specifically to systems and methods for determining available bandwidth of a path between two network points.
Computers within a computer network communicate over paths made up of physical links. The paths may be simple point-to-point links, for example-two computers linked directly together. More commonly, computer networks include a significant number of computers, with potentially multiple paths between computers. Moreover, each path may be comprised of multiple links, with each link being bounded by a node, and potentially some of the multiple paths may share some common links.
With the large number of computers potentially attached to networks, as well as potentially large data transfers over the paths, efficient allocation of paths becomes problematic. In addition, often data requested by a computer may be available from a number of sources. Such a situation may be found, for example, when multiple redundant servers are available to service a client. In order to efficiently allocate paths and sources, some knowledge of available bandwidth between any two network nodes is helpful.
Available bandwidth, however, is a dynamic parameter. That is, depending on the number of users of any path, or of any of the links making up the path, as well as the quantity of data being passed from or to users at any particular moment, the available bandwidth on the path may change drastically. In particular, available bandwidth is a function of network physical capacity and network traffic levels. Physical capacity of the network may change on a relatively infrequent basis, due to such circumstances as network upgrades, node failures within the network, and other factors. Network traffic, on the other hand, often may exhibit a high rate of change. Determination of available bandwidth, therefore, should occur on a relatively frequent basis in order to increase usefulness in allocating paths and resources.
The present invention provides a method of determining a network characteristic, which in one embodiment is available bandwidth of a path. In one embodiment, the method includes transmitting over a network a plurality of transmitted packets to a recipient destination, and receiving over the network a plurality of received packets from the recipient destination. In the one embodiment, each of the plurality of received packets has a correspondence with packets of the plurality of the transmitted packets. The network further comprises determining a characteristic of the network based on time differences between transmission and reception of the corresponding transmitted packets and received packets.
In a further embodiment, the present invention comprises a method of determining bandwidth characteristics of a communications path. The communications path is between a source node and a destination node, and the method include sending a first series of packets through the destination node, with a series of packets being separated in time, with a decreasing separation of time between subsequent packets in the series. The method also comprises receiving a second series of packets from the destination node with each of the packets in the second series of packets having a correspondence with a packet in the first series of packets, and determining a round trip time for each of the corresponding packets. In one embodiment, the method further comprises determining which corresponding packets in the series exhibits an increase in round trip time with respect to prior corresponding packets in the series.
These and other aspects of the present invention are more readily understood when considered in conjunction with the accompanying drawings and the following detailed description.